home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / sound / 148 / player.doc < prev    next >
Text File  |  1988-04-03  |  9KB  |  239 lines

  1.                              PLAYER.PRG
  2.                            updated 1/1/87
  3.  
  4.  
  5. NOTE:  This is a test version of the latest Music Studio Song Player.
  6. It contains many enhancements over the original version, and several,
  7. (most notably the Script Processing), have not been thoroughly
  8. debugged.  While using this program, if you notice bugs and/or 
  9. possible problems, or come up with a mind blowing enhancement, please
  10. contact:
  11.  
  12.                John Davis
  13.  
  14.                72465,227  (Compuserve)
  15.                J.W.DAVIS  (GEnie)
  16.                or the L.A.C.E. BBS at (806)792-3317
  17.  
  18.  
  19. Before loading the player program, please make sure that the resource
  20. file is in the same directory as the player program.
  21.  
  22.  
  23.  
  24. THE MAIN DIALOG
  25.  
  26. The main dialog has been enlarged to include the addition of more
  27. buttons.  This means, unfortunately, that the program will no longer
  28. run in low resolution.  Sorry...
  29.  
  30. There have been three new selections added to the main dialog - Midi
  31. Clock ON/OFF, Preset Change ON/OFF, and Channel 1 ON/OFF.
  32.  
  33.  
  34. If Midi Clock ON is selected, clock data will be sent along with the
  35. song.  This will allow any drum machines or sequencers attached to
  36. keep perfect sync with the song.  The first event in the song will
  37. trigger the clock, which spells trouble for those songs which have,
  38. for example, a lead in of 2 beats, followed by measures of 4 beats.
  39. Also, songs which are not 'properly written' (ie an extra 1/32 note
  40. in a measure) will also have trouble.  A suggestion has been made
  41. to allow a certain note value on a certain channel to trigger
  42. clock-on and clock-off - this will be implemented if enough feedback
  43. is received.
  44.  
  45.  
  46. Preset Change OFF will force all voices to play using the preset you
  47. select on your synth, instead of the preset stored in the song file.
  48. In other words, Program Change Requests will not be sent.
  49.  
  50.  
  51. Channel 1 ON will force all voices to play on Channel 1.
  52.  
  53.  
  54. In addition, the volume and tempo sliders have been changed to show
  55. the actual values being used on the slider button itself.  It is
  56. necessary to click on the blue part of the slider button to move it.
  57. These values range from 0-127 on the volume, which is the midi
  58. velocity that will be sent, and 0-200 on the tempo, which reflects
  59. beats-per-minute.
  60.  
  61.  
  62. The SCRIPT button will allow you to load a script file which can
  63. contain names of songs, commands to change volume, tempo, presets,
  64. etc., or commands to send sysex data to your synths.  Besides just
  65. creating a midi environment for a song before it is played, the
  66. SCRIPT function has other uses.  For example, I use it to send 
  67. patches to my synth without having to quit, load a librarian, etc.
  68. Following is a more detailed description of the Script Processor
  69. and it's use.  Please note that all commands must be in upper case,
  70. and all numbers must be in decimal.  There can only be one command
  71. or number per line, and a blank line must not contain anything
  72. but a carriage return.
  73.  
  74.  
  75. The EDIT MIDI button will show another dialog containing the voice
  76. names, midi channels, midi presets, and octave ranges.  These values
  77. may be changed (except for song name), by clicking on the value, and
  78. moving the mouse up or down while holding the button down.  The new 
  79. values are stored in a temporary buffer, and can be restored to their
  80. original settings with the RESTORE button.  You can also select a 
  81. drum pattern stored in your drum machine by click/dragging the
  82. Drum Song select field.
  83.  
  84.  
  85. The PLAY SONG button will cause the song currently in memory to
  86. begin playing.  A new dialog will appear, showing the song name
  87. (if it was stored in the Music Studio file), and a list of all
  88. instruments stored with this song.  A red note symbol will blink
  89. by each voice that is currently playing.  I have found a couple 
  90. of songs that were adversely affected by the blinking notes, so
  91. I have included the option to turn the note display off.  Pressing 
  92. 'N' will toggle the note display on or off.
  93.  
  94.  
  95. The JUKEBOX button will load and play each song in the current
  96. working directory.  While using this function, you can abort the
  97. current song and skip to the next one by pressing the space bar.
  98. Pressing X will abort the jukebox and return you to the main menu.
  99.  
  100.  
  101.  
  102. The Script Processor
  103. --------------------
  104.  
  105. The Player program will load a script file and automatically execute
  106. any commands and play any songs contained in that file.  All filenames
  107. in the script file must be a complete, valid file name with drive
  108. identifier and path. For example, c:\music\mysong.sng is a valid file
  109. name.  \music\mysong is not (no drive identifier.)  You may only place
  110. one command or number on each line of the script file, and the script
  111. must be saved with the extension .LST.  The script processor looks at the
  112. first column in each line of the script file to determine what to do
  113. with the command.  A carriage return is ignored, and a ! indicates a 
  114. comment, which is also ignored.  The # character indicates a command, and
  115. anything else is assumed to be a Music Studio file to be played.  All
  116. commands for a particular song must be listed in the file before the
  117. filename itself.  Following is a list of valid commands and their use,
  118. notice that all commands must be entered in upper case!
  119.  
  120. #DRUMON
  121.   Enables the midi clock which allows drum machines to stay in sync with
  122. the song.
  123.  
  124. #DRUMOFF
  125.   Disables the midi clock - no clock pulses will be sent.
  126.  
  127. #SETDRUM
  128. (pattern)
  129.   If your drum machine responds to Midi Song Select, this command will
  130. allow you to select the song pattern.  The line following this command
  131. must contain a single number in the range 0-127, corresponding to the
  132. song pattern you want selected.
  133.  
  134. #CHANNELON
  135.   Forces all voices in the song to play on channel 1
  136.  
  137. #CHANNELOFF
  138.   Allows all voices to play on their assigned channel.
  139.  
  140. #PRESETON
  141.   Allows the Player program to send program change requests.
  142.  
  143. #PRESETOFF
  144.   Disables Player program change requests.
  145.  
  146. #SENDTEMPO
  147. (tempo)
  148.   Changes the tempo for the song.  On the line following this command
  149. must be a single number in the range 1-200.
  150.  
  151. #SENDVOLUME
  152. (volume)
  153.   If your synth is velocity sensitive, this will change the volume of
  154. the song.  The line following this command must contain a single number
  155. in the range 1-127.
  156.  
  157. #SENDPRESET
  158. (preset #)
  159.   This command will send a program change request to your synth. There
  160. must be two lines following this command. The first line must contain
  161. a number in the range 0-15, which will be the desired channel for the
  162. program change.  The next line must contain a number in the range
  163. 0-127, which is the preset number to send.
  164.  
  165. #SENDBYTES 
  166.   This command will allow you to send any type of message out to your
  167. synths.  Every number between this command and the #ENDSEND command will
  168. be sent out the midi port.  This command can be used to initiate any type
  169. of sysex dump, program change, etc.  For example, the sequence:
  170.  
  171.    #SENDBYTES
  172.    240
  173.    67
  174.    32
  175.    3
  176.    247
  177.    #ENDSEND
  178.  
  179. will cause a TX81Z assigned to channel 0 to dump it's memory for Bank I
  180. out to midi.
  181.  
  182. #ENDSEND
  183.   Indicates the end of bytes to send. See #SENDBYTES above.
  184.  
  185. #SENDFILE
  186. (filename)
  187. (count or #ENDSEND)
  188.   This command will load a disk file into memory, then dump it out to midi.
  189. The line following this command must contain a complete, valid pathname
  190. (with drive identifier.)  The next line must contain either the command
  191. #ENDSEND, or the number of bytes to send.  If your file contains padding
  192. characters at the end which you don't want sent, and you know the exact
  193. number of bytes you want to send, place the count on this line. If your
  194. file contains the correct number or characters, or you are unsure what the 
  195. length of the dump should be, use the #ENDSEND command (and hope for the 
  196. best!)
  197.  
  198.   This command can be used, for example, to send the output from an
  199. editor/librarian program which is in sysex format (such as TXLIBR21.PRG)
  200. to your synths, and load an entire bank with voices before the song begins.
  201.  
  202.                               - - - - - - - - - -
  203.  
  204.   At the present time, these are all the commands recognised by the Script
  205. Processor.  See the included file "SCRIPT.LST" for examples of the above
  206. commands.  There are other commands being added to the Script Processor,
  207. and I hope to write a decent parser that will allow you to place all of a
  208. command on a single line, before this program is officially declared
  209. 'finished'.  Planned additions include:
  210.  
  211. #DOSCRIPT
  212. (filename)
  213.   Transfer control to another script file.
  214.  
  215. #WAIT
  216. (count)
  217.   Will wait until a specified number of bytes have been read from the
  218. midi port. (This is currently implemented, but listed as not working
  219. because any machines which may be transmitting data constantly (such
  220. as my drum machine) foul things up...)
  221.  
  222. #RECORD
  223. (count)
  224.   Will read a specified number of bytes from the midi port and save them
  225. in memory.
  226.  
  227. #SAVEDUMP
  228. (filename)
  229.   Saves the data acquired with the #RECORD command into a specified disk
  230. file.
  231.  
  232. The #WAIT command will be useful for those synths that require "handshaking"
  233. (such as Casio) before sending or receiving sysex data. #RECORD and 
  234. #SAVEDUMP will allow you to record sysex data from your synth and save it
  235. to disk. The addition of these commands should allow you to record, save,
  236. and send almost any type of midi data.
  237.  
  238.  
  239.